1. Field of the Invention
The present invention relates to data security, and more particularly to authentication of data. Data may need to be authenticated, for example, for securing it against attacks during transmission or transportation over a data network. Authentication may also be required when data is stored in a database that is accessible by users who may not be authorized to access the data.
2. Description of the Related Art
Data security can be provided by means of encryption and ciphering. The purpose of these functions is to shield data so that unauthorized users cannot read the content of the data. Another security feature is known as authentication. The authentication functions are for verifying that the data is authentic, for example, that the data is correct and has not been altered by unauthorized parties.
Authentication can be provided, for example, by means of hashing. The hashing may sometimes be referred to by the term signing. A hash function generates an output known as the digests. The results, i.e. the digests, can then be used to authenticate data. In a possible operation, a sender of data uses a hash function to generate data-related digests. The digests are then sent along with the data. Before using the data, a receiver may then first authenticate it based on the digest. That is, the receiver ensures that the received data is correct. In order to do so, the receiver may use the same hash function as the sender to hash the data and to get the data-related digests. The receiver may then compare the hashed digests with the received digests. If they are the same, then data is correct.
Hash functions are used in various applications. For example, hashing can be used to authenticate data in communication and to generate session keys. Another example is the use of hashing to hash a password. The digests may be used such that in the login the system, for example a computer or a network, hashes the password and compares the digests with the digests stored in the system. Even if an attacker could catch the digests, the attacker would still need to find a way to break the digests.
Examples of conventional hashing algorithms include various versions of algorithms known by the names SHA and MD5. Both MD5 and SHA hash messages to produce message related digests. The conventional hash functions only support a fixed length of digest. For example, SHA-1 can only generate a 160-bit digest. One SHA-2 implementation can only generate a 256-bit digest, a 384-bit digest or a 512-bit digest. That is, an SHA-2 implementation can still generate only a fixed length digest.
A number of data processing applications use SHA-1 as the authentication function. Should the SHA-1 be broken into by an attacker, then all of those applications would need to be updated or even re-implemented. This may cause a lot of trouble. An entirely new authentication implementation may be needed, including a lot of coding and debugging. The hash functions are typically categorised as security issues, and thus new codes cannot usually be downloaded from open networks or from free areas, as there is a risk, for example, that the code contains “Backdoors”. Furthermore, a variety of platforms exists and the coding has to be platform-specific. Finally, the new hash implementation has to be installed. The installation may need to be done in a number of locations. User may need to be trained for the new hash functions, and so on.
This extensive amount of extra work might be avoided were it possible to extend the digest. Extendable digests might be useful since it might enable addressing the situation where the initial short digest is broken by extending the initial digests rather than updating or replacing the entire algorithm.